/**
 * 静态资源：返回给前端的是一个个文件
 * 接口：返回给前端的是数据
 * 
 * nodejs如何启动一个接口
 * 
 * 请求方法：
 *  常用的：get,post
 * */ 

 const http = require("http");

 const app = http.createServer((req,res)=>{
     // 如何获取到请求方式：
     // 答：可以通过req.method属性获取到
     // 需求：实现get请求，请求地址是/api/getBookList，请求参数是bookname，搜索书籍接口

    //  获取查询参数
    // req.url包含了查询参数
    console.log(req.url);
    let arrUrl = req.url.split("?");
    console.log(22,arrUrl);
     if(req.method == "GET"&&arrUrl[0] === "/api/getBookList"){
         // 请求地址和方式正确，返回数据给前端
         let arr = [
             {
                 name: "红楼梦",
                 author: "曹雪芹"
             },{
                 name: "三国演义",
                 author: "罗贯中"
             }
         ]
        //  arrUrl[1] 的值就是 bookname=三国演义

        //  获取查询参数
        // URLSearchParams：是一个构造函数，用来将查询字符串转换为对象

        // 然后我们就能够通过URLSearchParams的实例化对象的get方法获取到查询的参数的值
        // 实例化对象：指的就是new构造函数的返回值，这个例子中指的就是query这个对象
        let query = new URLSearchParams(arrUrl[1]);
        console.log(42,query) // { 'bookname' => '三国演义' } 这个就相当于前端中的对象的形式 {bookname: '三国演义'}
        let str = query.get("bookname"); // bookname表示获取对象中键名对应的键值
        
        // filter方法是js中数组的过滤器方法
        let newArr = arr.filter(item=>{
            return item.name == str;
        })
        // console.log(41,newArr);
         res.setHeader("content-type","application/json;charset=utf8")
         res.end( JSON.stringify(newArr) )
     }else{
         res.statusCode = 404;
         res.setHeader("content-type","text/html;charset=utf8");
         res.end("{msg: '访问地址获取方式错误',code: 404}")
     }
     
 })
 
 app.listen("3000",()=>{
     console.log("服务器启动成功：http://localhost:3000");
 })
 